package com.lechi.web.system.mapper.iot;


import com.lechi.web.system.domain.IotDeviceCmdBo;
import com.lechi.web.system.domain.IotDeviceCmdMonitor;
import com.lechi.web.system.domain.IotDeviceCmdParse;
import com.lechi.web.system.domain.IotDeviceCmdSchedule;

import java.util.List;

/**
 * 读写指令配置Mapper接口
 *
 * @author yangguang
 */
public interface IotDeviceCmdMapper {

    /**
     * 查询读写指令配置列表
     *
     * @param iotDeviceCmdBo 读写指令配置
     * @return 读写指令配置集合
     */
    List<IotDeviceCmdBo> selectIotDeviceCmdList(IotDeviceCmdBo iotDeviceCmdBo);

    /**
     * 查询读写指令配置列表
     *
     * @param iotDeviceCmdBo 读写指令配置
     * @return 读写指令配置集合
     */
    List<IotDeviceCmdMonitor> selectIotDeviceMonitorList(IotDeviceCmdBo iotDeviceCmdBo);

    /**
     * 查询读写指令配置列表
     *
     * @return 读写指令配置集合
     */
    List<IotDeviceCmdParse> selectIotDeviceCmdListByOrder(Long deviceId);

    /**
     * 查询读写指令配置列表
     *
     * @return 读写指令配置集合
     */
    List<IotDeviceCmdSchedule> selectIotDeviceCmdListForSchedule(Long deviceId);

    /**
     * 查询读写指令配置列表
     *
     * @return 读写指令配置集合
     */
    List<IotDeviceCmdParse> selectIotDeviceCmdListForCreate(Long deviceId);

    /**
     * 新增读写指令配置
     *
     * @param iotDeviceCmdBo 读写指令配置
     * @return 结果
     */
    int insertIotDeviceCmd(IotDeviceCmdBo iotDeviceCmdBo);

    /**
     * 修改读写指令配置
     *
     * @param iotDeviceCmdBo 读写指令配置
     * @return 结果
     */
    int updateIotDeviceCmd(IotDeviceCmdBo iotDeviceCmdBo);

    /**
     * 修改读写指令配置
     *
     * @param iotDeviceCmdBo 读写指令配置
     * @return 结果
     */
    int updateIotCmdByAliasId(IotDeviceCmdBo iotDeviceCmdBo);

    /**
     * 删除读写指令配置
     *
     * @param id 读写指令配置主键
     * @return 结果
     */
    int deleteIotDeviceCmdById(Long id);


    /**
     * 删除读写指令配置
     *
     * @param deviceId 读写指令配置主键
     * @return 结果
     */
    int deleteIotDeviceCmdByDeviceId(Long deviceId);

    /**
     * 删除读写指令配置
     *
     * @param sensorAliasId 读写指令配置主键
     * @return 结果
     */
    int deleteIotDeviceCmdBySensorAliasId(Long sensorAliasId);

    /**
     * 批量删除读写指令配置
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    int deleteIotDeviceCmdByIds(Long[] ids);
}
